/*
 * @Author: Trae AI
 * @Date: 2024-07-15
 * @Description: 办事指南模块DTO
 */
import { IsNumber, IsOptional, IsString } from 'class-validator';
import { Type } from 'class-transformer';
import { DataBaseDto } from 'src/common/dto/data-base.dto';
import { PaginationDto } from 'src/common/dto/pagination.dto';

/* 分页查询 */
export class GetSysGuideListDto extends PaginationDto {
  /* 一级网格 */
  @IsOptional()
  @IsString()
  primaryGrid: string;

  /* 二级网格 */
  @IsOptional()
  @IsString()
  secondaryGrid: string;

  /* 网格属性 */
  @IsOptional()
  @IsString()
  gridAttributes: string;

  /* 存量提示 */
  @IsOptional()
  @IsString()
  stockPrompt: string;

  // /* 创建人 */
  // @IsOptional()
  // @IsString()
  // createBy: string;

  /* 状态 */
  @IsOptional()
  @IsString()
  status: string;

  /* 地区ID */
  @IsOptional()
  @Type(() => Number)
  @IsNumber()
  areaId?: number | null;

  /* 地区名称 */
  @IsOptional()
  @IsString()
  areaName?: string | null;
}

/* 新增 */
export class AddSysGuideDto extends DataBaseDto {
  /* 一级网格 */
  @IsOptional()
  @IsString()
  primaryGrid: string;
  /* 二级网格 */
  @IsOptional()
  @IsString()
  secondaryGrid: string;
  /* 网格属性 */
  @IsOptional()
  @IsString()
  gridAttributes: string;

  /* 现持证户数 */
  @IsOptional()
  @IsNumber()
  licensedHouseholds: number;

  /* 户数 */
  @IsOptional()
  @IsNumber()
  numberHouseholds: number;

  /* 预设户数 */
  @IsOptional()
  @IsNumber()
  preNumber: number;

  @IsOptional()
  @IsNumber()
  difference: number;

  /* 存量提示 */
  @IsOptional()
  @IsString()
  stockPrompt: string;

  // @IsOptional()
  // @IsString()
  // content: string;

  @IsOptional()
  @IsNumber()
  weight: number;

  @IsString()
  status: string;

  @IsOptional()
  @IsNumber()
  areaId: number;

  /* 地区名称 */
  @IsOptional()
  @IsString()
  areaName?: string | null;
}

/* 编辑 */
export class UpdateSysGuideDto {
  @IsNumber()
  guideId: number;

  /* 一级网格 */
  @IsOptional()
  @IsString()
  primaryGrid: string;
  /* 二级网格 */
  @IsOptional()
  @IsString()
  secondaryGrid: string;
  /* 网格属性 */
  @IsOptional()
  @IsString()
  gridAttributes: string;

  /* 现持证户数 */
  @IsOptional()
  @IsNumber()
  licensedHouseholds: number;

  /* 户数 */
  @IsOptional()
  @IsNumber()
  numberHouseholds: number;

  /* 预设户数 */
  @IsOptional()
  @IsNumber()
  preNumber: number;

  @IsOptional()
  @IsNumber()
  difference: number;

  /* 存量提示 */
  @IsOptional()
  @IsString()
  stockPrompt: string;

  // @IsOptional()
  // @IsString()
  // content: string;

  @IsOptional()
  @IsNumber()
  weight: number;

  @IsOptional()
  @IsString()
  status: string;

  @IsOptional()
  @IsNumber()
  areaId: number;

  /* 地区名称 */
  @IsOptional()
  @IsString()
  areaName?: string | null;
}

/* 小程序端查询启用的指南列表 */
export class GetEnabledGuideListDto extends PaginationDto {
  /* 指南标题 */
  @IsOptional()
  @IsString()
  secondaryGrid: string;

  /* 地区ID */
  @IsOptional()
  @Type(() => Number)
  @IsNumber()
  areaId?: number | null;
}